"""
给定一个整数数组 nums ，找到一个具有最大和的连续子数组（子数组最少包含一个元素），返回其最大和。
"""

class Solution:
    def maxSubArray(self, nums: [int]) -> int:
        pre = 0
        maxAns = nums[0]
        for x in nums:
            # pre来维护对于当前f(i)的f(i−1)的值是多少
            pre = max(x , pre + x ) # 判断f(i-1)是否要加到当前数上
            maxAns = max(maxAns, pre)   # 获取最大值
        return maxAns


# print(Solution.maxSubArray(self=Solution, nums=[-2,2,3]))
